package com.ruoyi.system.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ruoyi.system.domain.Design;
import com.ruoyi.system.dto.design.DesignQueryDTO;
import com.ruoyi.system.vo.design.DesignProjectVO;
import org.apache.ibatis.annotations.Param;

public interface DesignMapper extends BaseMapper<Design> {



    IPage<DesignProjectVO> selectDesignProjectPageList(
            IPage<DesignProjectVO> page,
            @Param("param")DesignQueryDTO param
    );

    /**
     * 根据前缀查询当天最大的设计编号
     * @param prefix 编号前缀（如 SJ-20250908-）
     * @return 最大编号（如 SJ-20250908-005），无数据则返回 null
     */
    String selectMaxDesignNoByPrefix(@Param("prefix") String prefix);


    /**
     * 根据业务关联ID查询所有操作日志（H5）
     *
     * @param projectNo 业务关联ID（如图纸ID、订单ID）
     * @return 操作日志列表
     */
    default Design selectByProjectNoIdForH5(String projectNo) {
        // 利用 MyBatis-Plus 的 QueryWrapper 构建条件
        return selectOne(
                new com.baomidou.mybatisplus.core.conditions.query.QueryWrapper<Design>()
                        .eq("project_no", projectNo)  //
                        .eq("is_deleted", 0)            // 过滤已删除
//                        .eq("is_sync_h5_design", 1)            // H5
        );
    }
}
